package org.xinjiang.data.migration.flush.enums;

import lombok.Getter;
import org.springframework.util.StringUtils;

/**
 * 民族
 */
@Getter
public enum NationEnum {
    UNKNOWN("UNKNOWN", "其他", "97", null), KAZAK("17", "哈萨克族", "17", null), 哈萨克zu("哈萨克zu", "哈萨克族", "17", null), THE_XIBES("38", "锡伯族", "38", null), RUSSIAN_ETHNIC_GROUP("44", "俄罗斯族", "44", null), THE_HAN_NATIONALITY("1", "汉族", "1", null), MANCHU("11", "满族", "11", null), CHINESE("汉", "汉", "1", null), HANZU("hanzu", "汉", "1", null), 汉族("汉族", "汉", "1", null), THE_HUI_NATIONALITY("3", "回族", "3", null), 回("回", "回族", "3", null), UNCONVERTED("", "未转换", "", null), 锡伯zu("锡伯zu", "未转换", "38", null), 柯尔克孜zu("柯尔克孜zu", "未转换", "29", null), 维吾尔("维吾尔", "未转换", "5", null), 维吾尔zu("维吾尔zu", "未转换", "5", null), 维族("维族", "未转换", "5", null), 维("维", "未转换", "5", null), 蒙古("蒙古", "未转换", "2", null), DAUR_ETHNIC_GROUP("31", "达斡尔族", "31", null);

    /* 数据来源code
     */
    private String sourceCode;

    /**
     * 数据来源名成
     */
    private String sourceName;


    private String targetCode;

    private Integer id;

    NationEnum(String sourceCode, String sourceName, String targetCode, Integer id) {
        this.sourceCode = sourceCode;
        this.sourceName = sourceName;
        this.targetCode = targetCode;
        this.id = id;
    }

    public static NationEnum toCode(String sourceCode) {
        for (NationEnum value : NationEnum.values()) {
            if (value.sourceCode.equals(sourceCode)) {
                return value;
            }
        }
        if (!StringUtils.isEmpty(sourceCode)) {
            if (sourceCode.length() > 2) {
                return UNKNOWN;
            }
            UNCONVERTED.targetCode = sourceCode;
            return UNCONVERTED;
        }
        return UNKNOWN;
    }
}
